package com.allwees.bs.module.pms.req;

import com.allwees.bs.core.modelbase.req.BoCrudReq;
import com.allwees.bs.core.modelbase.validate.ValidateItem;
import com.allwees.bs.module.pms.entity.Product;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;

import java.util.List;

/**
 * 调整商品字段（无需审核）
 *
 * @author yangylsky
 * @since 2019-12-18
 *
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class AdjustInfoReq extends BoCrudReq<Product> {
	private List<SkuReq> skus;

	@Override
	public ValidateItem[] getValidateItems() {
		return ArrayUtils.addAll(
				new ValidateItem[] {
						new ValidateItem(CollectionUtils.isEmpty(skus), "商品关联的SKU不能为空")
					},
				getSkuValidateItems()
			);
	}

	private ValidateItem[] getSkuValidateItems() {
		ValidateItem[] validateItems = new ValidateItem[0];
		for(SkuReq skuReq : skus) {
			validateItems = ArrayUtils.addAll(validateItems,
					new ValidateItem(!StringUtils.isBlank(skuReq.getUuid()), "SKU uuid不能为空")
				);
		}
		return validateItems;
	}
}
